package com.hy.common;

import java.io.File;

/**
 * @Author: hy
 * @Date: Created in 2019/10/7/14:27
 * @Description: 获取各种路径
 * @Version: 1.0
 */
public class PathUtils {

    /**
     * 获取类路径
     *
     * @return
     */
    public static String getClassPath() {

        String path = PathUtils.class.getResource("/").getFile();

        //Win需要删除开头的 /
        if (System.getProperty("os.name").toLowerCase().startsWith("win")) {
            return path.substring(1);
        }

        return path;

    }

    /**
     * 获取项目路径
     * 这有个天坑，War包 Tomcat下获取 user.dir 时获取的目录是 startup.bat 启动的路径（在哪启动的 startup.bat,user.dir就打印哪个目录）
     * 所以这个方法只适合 Jar包使用
     * @return
     */
    public static String getProjectPath() {
        return System.getProperty("user.dir");
    }

    /**
     * 使用 File.separator 拼接一个各系统通用的Path
     *
     * @param path 要连接的路径
     * @return
     */
    public static String getPath(String... path) {

        StringBuffer sb = new StringBuffer();

        for (String s : path) {
            sb.append(s).append(File.separator);
        }

        return sb.toString();
    }

    /**
     * 检测非法字符并删除
     * @return
     */
    public static String checkIllegalCharacter(String path){
        return path.replaceAll("[\\\\\\\\/:*?\\\"<>|]","");
    }

    //TODO 获取 WEB-INF路径
}
